संग्रहित प्रक्रिया क्या है?
एक संग्रहीत प्रक्रिया SQL कोड तैयार किया जाता है जिसे आप स्टोर कर सकते हैं ताकि कोड को बार-बार उपयोग किया जा सके।
इसलिए यदि आपके पास कोई SQL क्वेरी है जिसे आप बार-बार लिखते हैं, तो इसे एक संग्रहीत प्रक्रिया के रूप में सहेजें और इसे चलाने के लिए कॉल करें।
आप संग्रहीत प्रक्रिया में पैरामीटर पास कर सकते हैं ताकि संग्रहीत प्रक्रिया पारित पैरामीटर के मान के आधार पर निष्पादित हो सके।
संग्रहित प्रक्रियाओं के लाभ
पुन: उपयोग
कोड को बार-बार लिखने की जरूरत नहीं है, इसे बार-बार दोबारा इस्तेमाल किया जा सकता है
प्रदर्शन
पूर्व-संकलित कोड तेजी से चलता है
सुरक्षा
सीधी टेबल पहुंच को अवरुद्ध किया जा सकता है
नेटवर्क प्रदर्शन
कम नेटवर्क ट्रैफ़िक
संग्रहित प्रक्रिया सिंटैक्स
बनाना
CREATE PROCEDURE procedure_name
AS
sql_statement
GO;
रास्ते पर लानेवाला
EXEC procedure_name;
प्रदर्शन डेटाबेस
नीचे नॉर्थविंड नमूना डेटाबेस में "ग्राहक" तालिका से एक चयन है:
| CustomerID | CustomerName | ContactName | City | PostalCode | Country |
|---|---|---|---|---|---|
| 1 | Alfreds Futterkiste | Maria Anders | Berlin | 12209 | Germany |
| 2 | Ana Trujillo Emparedados y helados | Ana Trujillo | México D.F. | 05021 | Mexico |
| 3 | Antonio Moreno Taquería | Antonio Moreno | México D.F. | 05023 | Mexico |
| 4 | Around the Horn | Thomas Hardy | London | WA1 1DP | UK |
| 5 | Berglunds snabbköp | Christina Berglund | Luleå | S-958 22 | Sweden |
संग्रहित प्रक्रियाओं के उदाहरण
एक बुनियादी उदाहरण
निम्नलिखित SQL कथन "SelectAllCustomers" नामक एक संग्रहीत प्रक्रिया बनाता है जो "ग्राहक" तालिका से सभी रिकॉर्ड का चयन करता है:
बनाना
CREATE PROCEDURE SelectAllCustomers
AS
SELECT * FROM Customers
GO;
रास्ते पर लानेवाला
EXEC SelectAllCustomers;
एक पैरामीटर के साथ एक संग्रहीत प्रक्रिया
निम्नलिखित SQL कथन एक संग्रहीत प्रक्रिया बनाता है जो "ग्राहक" तालिका से एक विशिष्ट शहर के ग्राहकों का चयन करता है:
बनाना
CREATE PROCEDURE SelectAllCustomers @City nvarchar(30)
AS
SELECT * FROM Customers WHERE City = @City
GO;
रास्ते पर लानेवाला
EXEC SelectAllCustomers @City = 'London';
एकाधिक मापदंडों के साथ एक संग्रहीत प्रक्रिया
कई पैरामीटर सेट करना बहुत आसान है. प्रत्येक पैरामीटर और डेटा प्रकार को अल्पविराम से अलग करके सूचीबद्ध करें।
बनाना
CREATE PROCEDURE SelectAllCustomers
@City nvarchar(30),
@PostalCode nvarchar(10)
AS
SELECT * FROM Customers
WHERE City = @City
AND PostalCode = @PostalCode
GO;
रास्ते पर लानेवाला
EXEC SelectAllCustomers
@City = 'London',
@PostalCode = 'WA1 1DP';
सहायता नोट:
संग्रहीत प्रक्रियाएँ जटिल व्यावसायिक तर्क को संग्रहित करने, प्रदर्शन में सुधार करने और सुरक्षा में सुधार करने में मदद करती हैं। वे डेटाबेस लॉजिक को एप्लिकेशन कोड से अलग करते हैं।
व्यावहारिक उदाहरण
नए ग्राहक जोड़ना
सत्यापन के साथ नए ग्राहक जोड़ने की प्रक्रिया
CREATE PROCEDURE AddCustomer
@Name nvarchar(50),
@Email nvarchar(100)
AS
BEGIN
IF NOT EXISTS(SELECT 1 FROM Customers WHERE Email = @Email)
INSERT INTO Customers (Name, Email) VALUES (@Name, @Email)
END
विक्रय विवरण
किसी विशिष्ट अवधि के लिए बिक्री डेटा प्राप्त करें
CREATE PROCEDURE GetSalesReport
@StartDate date,
@EndDate date
AS
SELECT * FROM Orders
WHERE OrderDate BETWEEN @StartDate AND @EndDate
डेटा रखरखाव
बैकअप लें और पुराने रिकॉर्ड हटा दें
CREATE PROCEDURE ArchiveOldOrders
@ArchiveDate date
AS
BEGIN
INSERT INTO OrderArchive SELECT * FROM Orders
WHERE OrderDate < @ArchiveDate
DELETE FROM Orders WHERE OrderDate < @ArchiveDate
END